home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 2010 April / PCWorld0410.iso / redakcyjne / programy / VideoLAN Client (VLC) 1.0.5 / vlc-1.0.5-win32.exe / lua / http / requests / vlm.xml < prev   
Extensible Markup Language  |  2010-01-30  |  5KB  |  157 lines

  1. <?xml version="1.0" encoding="utf-8" standalone="yes" ?<?vlc print '>'
  2. --[[
  3. vim:syntax=lua
  4. <!--  - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - >
  5. <  vlm.xml: VLC media player web interface
  6. < - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - >
  7. <  Copyright (C) 2005-2006 the VideoLAN team
  8. <  $Id$
  9. <  Authors: Antoine Cellerier <dionoea -at- videolan -dot- org>
  10. <  This program is free software; you can redistribute it and/or modify
  11. <  it under the terms of the GNU General Public License as published by
  12. <  the Free Software Foundation; either version 2 of the License, or
  13. <  (at your option) any later version.
  14. <  This program is distributed in the hope that it will be useful,
  15. <  but WITHOUT ANY WARRANTY; without even the implied warranty of
  16. <  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  17. <  GNU General Public License for more details.
  18. <  You should have received a copy of the GNU General Public License
  19. <  along with this program; if not, write to the Free Software
  20. <  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
  21. < - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
  22. ]]
  23.  
  24. local function insert_children(c,t)
  25.   print(c.children)
  26.     if c.children then
  27.       for _, d in ipairs(c.children) do
  28.         table.insert(t,d.value or d.name)
  29.         if d.value then
  30.         print("V"..d.value.."|")
  31.         end
  32.         if d.name then
  33.         print("N"..d.name.."|")
  34.         end
  35.       end
  36.     end
  37. end
  38. local function print_table(name,t)
  39.   print("<"..name.."s>")
  40.   if #t ~= 0 then
  41.     for _,v in ipairs(t) do
  42.       print("<"..name..">")
  43.         print(v)
  44.       print("</"..name..">")
  45.     end
  46.   end
  47.   print("</"..name.."s>")
  48. end
  49. local function print_media(m)
  50.   local name = m.name
  51.   local type_, enabled, loop, output
  52.   local inputs = {}
  53.   local options = {}
  54.   local instances = {}
  55.   for _,c in ipairs(m.children) do
  56.     if c.name=="type" then
  57.       type_ = c.value
  58.     elseif c.name=="enabled" then
  59.       enabled = c.value
  60.     elseif c.name=="loop" then
  61.       loop = c.value
  62.     elseif c.name=="output" then
  63.       output = c.value
  64.     elseif c.name=="inputs" then
  65.       insert_children(c,inputs)
  66.     elseif c.name=="options" then
  67.       insert_children(c,options)
  68.     elseif c.name=="instances" then
  69.       if c.children then
  70.         for _, d in ipairs(c.children) do
  71.           local instance = "<instance "
  72.           for _,e in ipairs(d.children) do
  73.             instance = instance .. e.name .. "=\"" .. e.value .. "\" "
  74.           end
  75.           instance = instance .. "/>"
  76.           table.insert(instances,instance)
  77.         end
  78.       end
  79.     end
  80.   end
  81.   print("<"..type_.." name=\""..name.."\" enabled=\""..enabled.."\" loop=\""..loop.."\">\n")
  82.   print("<output>"..output.."</output>\n")
  83.   print_table("input",inputs)
  84.   print_table("option",options)
  85.   print "<instances>\n"
  86.   if #instances ~= 0 then
  87.     print(table.concat(instances))
  88.   end
  89.   print "</instances>\n"
  90.   print("</"..type_..">\n")
  91. end
  92.  
  93. local function print_schedule(m)
  94.   local name = m.name
  95.   local enabled, date, period, repeat_ = "", "", "", ""
  96.   local commands = {}
  97.   for _,c in ipairs(m.children) do
  98.     if c.name=="enabled" then
  99.       enabled = c.value
  100.     elseif c.name=="date" then
  101.       date = c.value
  102.     elseif c.name=="period" then
  103.       period = c.value
  104.     elseif c.name=="repeat" then
  105.       repeat_ = c.value
  106.     elseif c.name=="commands" then
  107.       insert_children(c,commands)
  108.     end
  109.   end
  110.   print("<schedule name=\""..name.."\" enabled=\""..enabled.."\" period=\""..period.."\" repeat=\""..repeat_.."\">\n")
  111.   print_table("command",commands)
  112.   print("</schedule>\n")
  113. end
  114.  
  115. local function print_xml(m)
  116.   print "<vlm>"
  117.   if m then
  118.     for _, c in ipairs(m.children) do
  119.       if c.name=="media" and c.children then
  120.         for _, d in ipairs(c.children) do
  121.           print_media(d)
  122.         end
  123.       elseif c.name=="schedule" and c.children then
  124.         for _, d in ipairs(c.children) do
  125.           print_schedule(d)
  126.         end
  127.       end
  128.     end
  129.   else
  130.     print "oops"
  131.   end
  132.   print "</vlm>"
  133. end
  134.  
  135. local function print_msg(m)
  136.   if not m then return end
  137.   print("<"..m.name..">\n")
  138.   if m.children then
  139.     for _, child in ipairs(m.children) do
  140.       print_msg(child)
  141.     end
  142.   elseif m.value then
  143.     print(m.value)
  144.   end
  145.   print("</"..m.name..">\n")
  146. end
  147.  
  148. local msg = vlm:execute_command("show")
  149. print_xml(msg)
  150. --print_msg(msg)
  151.  
  152. ?>
  153.